<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>lwIP: src/include/lwip/sys.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">lwIP
   &#160;<span id="projectnumber">2.1.2</span>
   </div>
   <div id="projectbrief">Lightweight IP stack</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('sys_8h.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">sys.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="opt_8h.html">lwip/opt.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="err_8h.html">lwip/err.h</a>&quot;</code><br />
<code>#include &quot;arch/sys_arch.h&quot;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ac1495030a8ab5e1f3c89e42ced527c5b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#ac1495030a8ab5e1f3c89e42ced527c5b">SYS_ARCH_TIMEOUT</a>&#160;&#160;&#160;0xffffffffUL</td></tr>
<tr class="separator:ac1495030a8ab5e1f3c89e42ced527c5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0571e67edca0132b144106e9b319ef9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#ab0571e67edca0132b144106e9b319ef9">SYS_MBOX_EMPTY</a>&#160;&#160;&#160;<a class="el" href="sys_8h.html#ac1495030a8ab5e1f3c89e42ced527c5b">SYS_ARCH_TIMEOUT</a></td></tr>
<tr class="separator:ab0571e67edca0132b144106e9b319ef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bada49634cd3b28b28bdcedd763a1e6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#a7bada49634cd3b28b28bdcedd763a1e6">LWIP_COMPAT_MUTEX</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a7bada49634cd3b28b28bdcedd763a1e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84e7e4bc00255aee84e6e7289a985703"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#a84e7e4bc00255aee84e6e7289a985703">sys_sem_wait</a>(sem)&#160;&#160;&#160;<a class="el" href="group__sys__sem.html#ga8d364c5037778acb21c3df675db81b4f">sys_arch_sem_wait</a>(sem, 0)</td></tr>
<tr class="separator:a84e7e4bc00255aee84e6e7289a985703"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e8ad541356786936f23ab83b8f550cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#a9e8ad541356786936f23ab83b8f550cc">sys_sem_valid_val</a>(sem)&#160;&#160;&#160;<a class="el" href="group__sys__sem.html#ga09a6c052ddaf799139efc56adfa087e4">sys_sem_valid</a>(&amp;(sem))</td></tr>
<tr class="separator:a9e8ad541356786936f23ab83b8f550cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2556e570f6973a6f4d57d0e76ef190d8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#a2556e570f6973a6f4d57d0e76ef190d8">sys_sem_set_invalid_val</a>(sem)&#160;&#160;&#160;<a class="el" href="group__sys__sem.html#ga42a2ab32afbf41a4146a9d135224ef33">sys_sem_set_invalid</a>(&amp;(sem))</td></tr>
<tr class="separator:a2556e570f6973a6f4d57d0e76ef190d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7841780b31ba9c0a39a440aad1fca13"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#ab7841780b31ba9c0a39a440aad1fca13">sys_mbox_tryfetch</a>(mbox,  msg)&#160;&#160;&#160;<a class="el" href="group__sys__mbox.html#gafab441b130b4ec417012835dbe1e497c">sys_arch_mbox_tryfetch</a>(mbox, msg)</td></tr>
<tr class="separator:ab7841780b31ba9c0a39a440aad1fca13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae82640d0bdbeec7b9b6511b3f8d99cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#aae82640d0bdbeec7b9b6511b3f8d99cb">sys_mbox_valid_val</a>(mbox)&#160;&#160;&#160;<a class="el" href="group__sys__mbox.html#ga8bcfab4bd791dd33f69a778e7585275d">sys_mbox_valid</a>(&amp;(mbox))</td></tr>
<tr class="separator:aae82640d0bdbeec7b9b6511b3f8d99cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae293feebb61d36f2db99be53702b8203"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#ae293feebb61d36f2db99be53702b8203">sys_mbox_set_invalid_val</a>(mbox)&#160;&#160;&#160;<a class="el" href="group__sys__mbox.html#ga53ddec9d7f5500c5b1d982cd17493172">sys_mbox_set_invalid</a>(&amp;(mbox))</td></tr>
<tr class="separator:ae293feebb61d36f2db99be53702b8203"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga945395fa326214fc9736487242710a90"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__prot.html#ga945395fa326214fc9736487242710a90">SYS_ARCH_DECL_PROTECT</a>(lev)&#160;&#160;&#160;sys_prot_t lev</td></tr>
<tr class="separator:ga945395fa326214fc9736487242710a90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d0e48feafd378e9c26c64567ecd8bab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__prot.html#ga3d0e48feafd378e9c26c64567ecd8bab">SYS_ARCH_PROTECT</a>(lev)&#160;&#160;&#160;lev = sys_arch_protect()</td></tr>
<tr class="separator:ga3d0e48feafd378e9c26c64567ecd8bab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f48e97047945642ddeb27e65bf4ffe2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__prot.html#ga2f48e97047945642ddeb27e65bf4ffe2">SYS_ARCH_UNPROTECT</a>(lev)&#160;&#160;&#160;sys_arch_unprotect(lev)</td></tr>
<tr class="separator:ga2f48e97047945642ddeb27e65bf4ffe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ae30a77bf6bd69bfcc5f235eaad54f2b9"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#ae30a77bf6bd69bfcc5f235eaad54f2b9">lwip_thread_fn</a>) (void *arg)</td></tr>
<tr class="separator:ae30a77bf6bd69bfcc5f235eaad54f2b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga38e7dae1fd88b338eb1cd97f110f3897"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mutex.html#ga38e7dae1fd88b338eb1cd97f110f3897">sys_mutex_new</a> (sys_mutex_t *mutex)</td></tr>
<tr class="separator:ga38e7dae1fd88b338eb1cd97f110f3897"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d4eb9afe5965fa2661dd54ff55d616a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mutex.html#ga4d4eb9afe5965fa2661dd54ff55d616a">sys_mutex_lock</a> (sys_mutex_t *mutex)</td></tr>
<tr class="separator:ga4d4eb9afe5965fa2661dd54ff55d616a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5568f68898fe9d5735f9ce2f665624fb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mutex.html#ga5568f68898fe9d5735f9ce2f665624fb">sys_mutex_unlock</a> (sys_mutex_t *mutex)</td></tr>
<tr class="separator:ga5568f68898fe9d5735f9ce2f665624fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga16336ce68b741e98204102ca4bc84dd9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mutex.html#ga16336ce68b741e98204102ca4bc84dd9">sys_mutex_free</a> (sys_mutex_t *mutex)</td></tr>
<tr class="separator:ga16336ce68b741e98204102ca4bc84dd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebe83ba90a6d9c23cdb3eb5d49562c4a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mutex.html#gaebe83ba90a6d9c23cdb3eb5d49562c4a">sys_mutex_valid</a> (sys_mutex_t *mutex)</td></tr>
<tr class="separator:gaebe83ba90a6d9c23cdb3eb5d49562c4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f392725971dc837aa56dd7e45fa7ca8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mutex.html#ga3f392725971dc837aa56dd7e45fa7ca8">sys_mutex_set_invalid</a> (sys_mutex_t *mutex)</td></tr>
<tr class="separator:ga3f392725971dc837aa56dd7e45fa7ca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf99da9e34a71855285c535183133dfde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__sem.html#gaf99da9e34a71855285c535183133dfde">sys_sem_new</a> (sys_sem_t *sem, u8_t count)</td></tr>
<tr class="separator:gaf99da9e34a71855285c535183133dfde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf800273061fcc3f8200fd4e1b9ca875"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__sem.html#gaaf800273061fcc3f8200fd4e1b9ca875">sys_sem_signal</a> (sys_sem_t *sem)</td></tr>
<tr class="separator:gaaf800273061fcc3f8200fd4e1b9ca875"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d364c5037778acb21c3df675db81b4f"><td class="memItemLeft" align="right" valign="top">u32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__sem.html#ga8d364c5037778acb21c3df675db81b4f">sys_arch_sem_wait</a> (sys_sem_t *sem, u32_t timeout)</td></tr>
<tr class="separator:ga8d364c5037778acb21c3df675db81b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83b781f96c30e915c752065a757da283"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__sem.html#ga83b781f96c30e915c752065a757da283">sys_sem_free</a> (sys_sem_t *sem)</td></tr>
<tr class="separator:ga83b781f96c30e915c752065a757da283"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09a6c052ddaf799139efc56adfa087e4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__sem.html#ga09a6c052ddaf799139efc56adfa087e4">sys_sem_valid</a> (sys_sem_t *sem)</td></tr>
<tr class="separator:ga09a6c052ddaf799139efc56adfa087e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42a2ab32afbf41a4146a9d135224ef33"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__sem.html#ga42a2ab32afbf41a4146a9d135224ef33">sys_sem_set_invalid</a> (sys_sem_t *sem)</td></tr>
<tr class="separator:ga42a2ab32afbf41a4146a9d135224ef33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b8786f43e779953e8b74e983c88682e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__misc.html#ga6b8786f43e779953e8b74e983c88682e">sys_msleep</a> (u32_t ms)</td></tr>
<tr class="separator:ga6b8786f43e779953e8b74e983c88682e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab9793f30642de06ce87827e9adbe30cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mbox.html#gab9793f30642de06ce87827e9adbe30cc">sys_mbox_new</a> (sys_mbox_t *mbox, int size)</td></tr>
<tr class="separator:gab9793f30642de06ce87827e9adbe30cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9d068386a3c53dd01b8af99c3ef77555"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mbox.html#ga9d068386a3c53dd01b8af99c3ef77555">sys_mbox_post</a> (sys_mbox_t *mbox, void *msg)</td></tr>
<tr class="separator:ga9d068386a3c53dd01b8af99c3ef77555"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa36345e48a49d67cbb0878cd4cbd2195"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mbox.html#gaa36345e48a49d67cbb0878cd4cbd2195">sys_mbox_trypost</a> (sys_mbox_t *mbox, void *msg)</td></tr>
<tr class="separator:gaa36345e48a49d67cbb0878cd4cbd2195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf677a6e76adb7650a3020fdb3cb8429a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mbox.html#gaf677a6e76adb7650a3020fdb3cb8429a">sys_mbox_trypost_fromisr</a> (sys_mbox_t *mbox, void *msg)</td></tr>
<tr class="separator:gaf677a6e76adb7650a3020fdb3cb8429a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6464cd77cf6799bd8b3d6c840166a2e8"><td class="memItemLeft" align="right" valign="top">u32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mbox.html#ga6464cd77cf6799bd8b3d6c840166a2e8">sys_arch_mbox_fetch</a> (sys_mbox_t *mbox, void **msg, u32_t timeout)</td></tr>
<tr class="separator:ga6464cd77cf6799bd8b3d6c840166a2e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafab441b130b4ec417012835dbe1e497c"><td class="memItemLeft" align="right" valign="top">u32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mbox.html#gafab441b130b4ec417012835dbe1e497c">sys_arch_mbox_tryfetch</a> (sys_mbox_t *mbox, void **msg)</td></tr>
<tr class="separator:gafab441b130b4ec417012835dbe1e497c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac641a45812155d2234ef80dd6412882f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mbox.html#gac641a45812155d2234ef80dd6412882f">sys_mbox_free</a> (sys_mbox_t *mbox)</td></tr>
<tr class="separator:gac641a45812155d2234ef80dd6412882f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8bcfab4bd791dd33f69a778e7585275d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mbox.html#ga8bcfab4bd791dd33f69a778e7585275d">sys_mbox_valid</a> (sys_mbox_t *mbox)</td></tr>
<tr class="separator:ga8bcfab4bd791dd33f69a778e7585275d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53ddec9d7f5500c5b1d982cd17493172"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__mbox.html#ga53ddec9d7f5500c5b1d982cd17493172">sys_mbox_set_invalid</a> (sys_mbox_t *mbox)</td></tr>
<tr class="separator:ga53ddec9d7f5500c5b1d982cd17493172"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d596afdd8dbcfad320172d39b0f607a"><td class="memItemLeft" align="right" valign="top">sys_thread_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__misc.html#ga0d596afdd8dbcfad320172d39b0f607a">sys_thread_new</a> (const char *name, <a class="el" href="sys_8h.html#ae30a77bf6bd69bfcc5f235eaad54f2b9">lwip_thread_fn</a> thread, void *arg, int stacksize, int prio)</td></tr>
<tr class="separator:ga0d596afdd8dbcfad320172d39b0f607a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf411a8bc6b7ed4b0af9114e10c959448"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__misc.html#gaf411a8bc6b7ed4b0af9114e10c959448">sys_init</a> (void)</td></tr>
<tr class="separator:gaf411a8bc6b7ed4b0af9114e10c959448"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac89f307e8b360eaf821b461a4f26753a"><td class="memItemLeft" align="right" valign="top">u32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys_8h.html#ac89f307e8b360eaf821b461a4f26753a">sys_jiffies</a> (void)</td></tr>
<tr class="separator:ac89f307e8b360eaf821b461a4f26753a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11316ac1e77418c6fa4ab8869e3fa199"><td class="memItemLeft" align="right" valign="top">u32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sys__time.html#ga11316ac1e77418c6fa4ab8869e3fa199">sys_now</a> (void)</td></tr>
<tr class="separator:ga11316ac1e77418c6fa4ab8869e3fa199"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>OS abstraction layer </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a7bada49634cd3b28b28bdcedd763a1e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7bada49634cd3b28b28bdcedd763a1e6">&#9670;&nbsp;</a></span>LWIP_COMPAT_MUTEX</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_COMPAT_MUTEX&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Define LWIP_COMPAT_MUTEX if the port has no mutexes and binary semaphores should be used instead </p>

</div>
</div>
<a id="ac1495030a8ab5e1f3c89e42ced527c5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1495030a8ab5e1f3c89e42ced527c5b">&#9670;&nbsp;</a></span>SYS_ARCH_TIMEOUT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SYS_ARCH_TIMEOUT&#160;&#160;&#160;0xffffffffUL</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return code for timeouts from sys_arch_mbox_fetch and sys_arch_sem_wait </p>

</div>
</div>
<a id="ab0571e67edca0132b144106e9b319ef9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0571e67edca0132b144106e9b319ef9">&#9670;&nbsp;</a></span>SYS_MBOX_EMPTY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SYS_MBOX_EMPTY&#160;&#160;&#160;<a class="el" href="sys_8h.html#ac1495030a8ab5e1f3c89e42ced527c5b">SYS_ARCH_TIMEOUT</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p><a class="el" href="sys_8h.html#ab7841780b31ba9c0a39a440aad1fca13">sys_mbox_tryfetch()</a> returns SYS_MBOX_EMPTY if appropriate. For now we use the same magic value, but we allow this to change in future. </p>

</div>
</div>
<a id="ae293feebb61d36f2db99be53702b8203"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae293feebb61d36f2db99be53702b8203">&#9670;&nbsp;</a></span>sys_mbox_set_invalid_val</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define sys_mbox_set_invalid_val</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">mbox</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__sys__mbox.html#ga53ddec9d7f5500c5b1d982cd17493172">sys_mbox_set_invalid</a>(&amp;(mbox))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Same as <a class="el" href="group__sys__mbox.html#ga53ddec9d7f5500c5b1d982cd17493172">sys_mbox_set_invalid()</a> but taking a value, not a pointer </p>

</div>
</div>
<a id="ab7841780b31ba9c0a39a440aad1fca13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7841780b31ba9c0a39a440aad1fca13">&#9670;&nbsp;</a></span>sys_mbox_tryfetch</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define sys_mbox_tryfetch</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">mbox, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">msg&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="group__sys__mbox.html#gafab441b130b4ec417012835dbe1e497c">sys_arch_mbox_tryfetch</a>(mbox, msg)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>For now, we map straight to sys_arch implementation. </p>

</div>
</div>
<a id="aae82640d0bdbeec7b9b6511b3f8d99cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae82640d0bdbeec7b9b6511b3f8d99cb">&#9670;&nbsp;</a></span>sys_mbox_valid_val</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define sys_mbox_valid_val</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">mbox</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__sys__mbox.html#ga8bcfab4bd791dd33f69a778e7585275d">sys_mbox_valid</a>(&amp;(mbox))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Same as <a class="el" href="group__sys__mbox.html#ga8bcfab4bd791dd33f69a778e7585275d">sys_mbox_valid()</a> but taking a value, not a pointer </p>

</div>
</div>
<a id="a2556e570f6973a6f4d57d0e76ef190d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2556e570f6973a6f4d57d0e76ef190d8">&#9670;&nbsp;</a></span>sys_sem_set_invalid_val</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define sys_sem_set_invalid_val</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">sem</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__sys__sem.html#ga42a2ab32afbf41a4146a9d135224ef33">sys_sem_set_invalid</a>(&amp;(sem))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Same as <a class="el" href="group__sys__sem.html#ga42a2ab32afbf41a4146a9d135224ef33">sys_sem_set_invalid()</a> but taking a value, not a pointer </p>

</div>
</div>
<a id="a9e8ad541356786936f23ab83b8f550cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e8ad541356786936f23ab83b8f550cc">&#9670;&nbsp;</a></span>sys_sem_valid_val</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define sys_sem_valid_val</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">sem</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__sys__sem.html#ga09a6c052ddaf799139efc56adfa087e4">sys_sem_valid</a>(&amp;(sem))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Same as <a class="el" href="group__sys__sem.html#ga09a6c052ddaf799139efc56adfa087e4">sys_sem_valid()</a> but taking a value, not a pointer </p>

</div>
</div>
<a id="a84e7e4bc00255aee84e6e7289a985703"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84e7e4bc00255aee84e6e7289a985703">&#9670;&nbsp;</a></span>sys_sem_wait</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define sys_sem_wait</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">sem</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__sys__sem.html#ga8d364c5037778acb21c3df675db81b4f">sys_arch_sem_wait</a>(sem, 0)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Wait for a semaphore - forever/no timeout </p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ae30a77bf6bd69bfcc5f235eaad54f2b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae30a77bf6bd69bfcc5f235eaad54f2b9">&#9670;&nbsp;</a></span>lwip_thread_fn</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* lwip_thread_fn) (void *arg)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Function prototype for thread functions </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ac89f307e8b360eaf821b461a4f26753a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac89f307e8b360eaf821b461a4f26753a">&#9670;&nbsp;</a></span>sys_jiffies()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32_t sys_jiffies </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Ticks/jiffies since power up. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b0856f6b0d80ccb263b2f415c91f9e17.html">include</a></li><li class="navelem"><a class="el" href="dir_4e6b3cf33a61b6caac9c8ac30c866f37.html">lwip</a></li><li class="navelem"><a class="el" href="sys_8h.html">sys.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
